home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_b / qkmenu.doc < prev    next >
Text File  |  1995-04-22  |  8KB  |  315 lines

  1.  
  2.    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  3.    %      Documentation For       %
  4.    %                              %
  5.    %  Auto-Booter And Quick Menu  %
  6.    %             by               %
  7.    %       Keith Ledbetter        % 
  8.    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  9.  
  10.  
  11. The Auto-Booter
  12. ===============
  13.  
  14.   The Auto-Booter is a special boot
  15. utility which allows you to specify
  16. any binary load module that you would
  17. like loaded at boot-up time. Auto-Boot
  18. works with any DOS 2.0-type DOS in
  19. either Single, Double, or 1050 (DOS 2.5)
  20. densities (NOT with Sparta-DOS!).
  21.  
  22.   Note that you should not specify a
  23. program for auto-booting if it uses
  24. DOS, since no DOS is loaded into the
  25. machine with Auto-Booter on the disk.
  26.  
  27.   While this utility was written mainly
  28. for load module boot-menus, it can
  29. load any type of binary file.
  30.  
  31.   The program MAKEBOOT will install 
  32. Auto-Boot on a disk.  Auto-Boot is  
  33. installed on the first 3 sectors of 
  34. the disk, like any DOS, and therefore
  35. can be written to any disk you have,
  36. EVEN IF IT ALREADY HAS FILES ON IT. 
  37. (In fact -- it MUST have files on it.
  38. See below.)
  39.  
  40.   To install Auto-boot, do the following:
  41.  
  42.   - Do a binary load of MAKEBOOT (or
  43.     whatever name you called it).
  44.  
  45.   - MAKEBOOT will inform you to place
  46.     the disk that you will be writing
  47.     Auto-boot to into drive 1.  Do
  48.     this, then hit any key.
  49.  
  50.   - Next, since Auto-boot works with 
  51.     disks formatted with many different
  52.     DOS's, you must tell MAKEBOOT what
  53.     density the disk is.  This can be
  54.     either Single, Double, or 1050 
  55.     (DOS 2.5) format.  Press the 
  56.     corresponding key for your disk.
  57.  
  58.   - MAKEBOOT will then show you a 
  59.     listing of all of the files on
  60.     that disk, along with a letter or
  61.     number printed beside each name.
  62.     Now, all you have to do is press
  63.     the number/letter of the file that
  64.     you want Auto-Boot to load at
  65.     boot-up time.     
  66.  
  67.  After pressing a key, Auto-Booter will
  68. be written do the disk, and the program
  69. will re-start, allowing you to do more
  70. than one disk at a time.  Once you are
  71. finished, just simply re-boot the system.
  72.  
  73.  Note that you can run MAKEBOOT and
  74. simply change the file that you have
  75. marked for boot.  If, for example, 
  76. you have FILEA loading at boot-up time
  77. and would like to change to FILEB, just
  78. run MAKEBOOT, press the letter/number
  79. of FILEB, and FILEB will now boot!
  80.  
  81.  
  82.  
  83.   The Ultimate Atari
  84.   Quickloader Menu (QKMENU)
  85.  ==========================
  86.  
  87.   THIS MENU WILL NOT WORK UNLESS YOU
  88. HAVE WRITTEN AUTO-BOOT TO THE DISKETTE!!
  89.  
  90.   QKMENU is a binary loader menu that
  91. will work hand-in-hand with the Auto-
  92. Boot routines.  Because of the very
  93. low location of Auto-Boot in memory,
  94. this menu should load about 99.99% of
  95. ALL binary files.
  96.  
  97.   To use QKMENU, simply copy the file
  98. to a disk with your favorite games on
  99. it.  Then, run MAKEBOOT (see above) and
  100. tell it to boot QKMENU.SYS (or whatever
  101. name you called it).
  102.  
  103.   Features of QKMENU:
  104.   -------------------
  105.  
  106.   - Any file with an extender of .SYS
  107.     will not appear on the menu.  So,
  108.     you should name QKMENU          
  109.     <something>.SYS so that it will
  110.     not show up.
  111.   
  112.   - Automatically disables BASIC in 
  113.     the XL machines - no need to hold
  114.     down OPTION!
  115.  
  116.   - Files are displayed using the 
  117.     ENTIRE 11 positions of the file
  118.     name, and any 0's (zeros) in the
  119.     name will be replaced by spaces
  120.     on the menu.  So, a file named
  121.     "LIVE0WIR.E" will appear as
  122.     "LIVE WIRE" on the menu.
  123.  
  124.   - Handles up to 32 filenames per
  125.     diskette! 
  126.  
  127.   - To load another game, simply hit
  128.     SYSTEM RESET and the menu will
  129.     be re-loaded (re-disabling BASIC).
  130.     Unless, of course, the game that
  131.     you are running steals the Reset
  132.     Vector.
  133.  
  134.  
  135.  Tips On Installing QKMENU
  136.  -------------------------
  137.  
  138.  There are pros and cons of having a
  139. menu as a file like this.  The dis-
  140. advantage is that you will use a few
  141. more sectors per diskette than most
  142. "boot" menus.  This is because boot
  143. menus normally "steal" 4 or 5 of the
  144. catalog sectors to hold their code.
  145.  
  146.  The advantage is that you can install
  147. Auto-Boot / QKMENU to ANY disk, no 
  148. matter what is on the disk, with no
  149. worry about destroying data or having
  150. "garbage" in your catalog sectors:
  151.  
  152. [1] If you have a disk with DOS.SYS 
  153.     and/or DUP.SYS on it that contains
  154.     games (normally with an autorun.sys
  155.     menu), do the following:
  156.  
  157.        - Boot up and go to DOS.
  158.        - DELETE DOS.SYS and DUP.SYS 
  159.          (since you no longer need
  160.           DOS!), and also delete the
  161.          autorun.sys menu (if present).
  162.        - Copy QKMENU.SYS over to this
  163.          disk.
  164.        - Run MAKEBOOT and tell it to
  165.          boot QKMENU.SYS.
  166.  
  167. [2] If you have a disk that already
  168.     has a "boot" menu on it (like
  169.     "Quick Loader" or my old "Quick
  170.     Boot Menu"), then just:
  171.  
  172.        - Copy QKMENU.SYS over to this
  173.          disk.
  174.        - Run MAKEBOOT and tell it to
  175.          boot QKMENU.SYS.
  176.  
  177. [3] If you are starting with a fresh
  178.     disk, just:
  179.  
  180.        - Boot up your favorite DOS and
  181.          format the new disk in either
  182.          single or double density.
  183.  
  184.        - Copy QKMENU.SYS over to this
  185.          disk.
  186.        - Run MAKEBOOT and tell it to
  187.          boot QKMENU.SYS.
  188.  
  189.  
  190.   Piece of cake!!
  191.  
  192.  
  193.  
  194. Interfacing to Auto-Boot 
  195. ========================
  196.  
  197.   If you aren't the hacking type, then
  198. you can skip this section.  The following
  199. will tell you how to interface with
  200. Auto-Boot, in case you are like me and
  201. want to write your own menu.
  202.  
  203.   There is only one minor rule that
  204. you must follow if you want to write a
  205. menu that uses the Auto-Boot routines.
  206. This is that the Auto-Boot routines are
  207. at locations $0700 thru $086F, so your
  208. program must not use this area of 
  209. memory (I TOLD you it was simple!)
  210.  
  211.   There are only 3 zero-page locations
  212. that you need to know about to use
  213. Auto-Boot in your own program.  These
  214. are:
  215.  
  216.   $0709 - This location contains the
  217.           current DENSITY of the disk
  218.           just loaded. 0=Double Density,
  219.           128=Single Density.  This  
  220.           should not be modified by 
  221.           your program, but you will
  222.           need to check it to see what
  223.           density to read the catalog
  224.           sectors in.
  225.  
  226.   $070A - This 2-byte location contains
  227.           the STARTING SECTOR of the
  228.           file to boot.
  229.  
  230.   $0714 - This is the "warm-start"
  231.           entry point of Auto-Booter.
  232.           Jump to here after setting
  233.           the starting sector, and the
  234.           load of the file will take
  235.           place!
  236.  
  237.  
  238.  Examples
  239.  ======== 
  240.  
  241. Assembler:  
  242. ----------
  243.  
  244.  DENSITY  =  $0709     ;Disks density
  245.  STSECTOR =  $070A     ;Start sector
  246.  AUTOBOOT =  $0714     ;Entry Point
  247.  
  248.      <.....
  249.       .....
  250.     process the menu and
  251.   get the starting sector of
  252.   the requested file  
  253.       .....
  254.       .....>
  255.  
  256.  LOADIT  LDA SECTOR   ;lo byte
  257.          STA STSECTOR
  258.          LDA SECTOR+1 ;hi byte
  259.          STA STSECTOR+1
  260.          JMP AUTOBOOT
  261.  
  262.  
  263. Action! (with run-time module only!)
  264. =======   
  265.  
  266.  
  267. Byte Density =$0709  ;Disks density
  268. Card StSector=$070A  ;Start sector
  269.  
  270. Proc Auto_Boot = $0714 ()
  271.  
  272. Proc Loadit()
  273.  
  274.    StSector = Sector ;Set up start
  275.    Auto_Boot()       ;Go load it!
  276. Return
  277.  
  278. Proc Get_Selection()
  279.      <.....
  280.       .....
  281.     process the menu and
  282.   get the starting sector of
  283.   the requested file  
  284.       .....
  285.       .....>
  286.  
  287.     Loadit ()
  288.  
  289.  
  290.  
  291.   Once you jump to the loader routine,
  292. control will NOT be passed back to 
  293. your program.  But, before running the
  294. program just loaded, the Auto-Booter
  295. does the following things:
  296.  
  297.    - Resets the character set to the
  298.      system ROM set.
  299.  
  300.    - Resets the background color of
  301.      the screen.
  302.  
  303.    - Resets the stack, so don't 
  304.      worry about jumping out of  
  305.      a subroutine.
  306.  
  307.  
  308.  Hope you enjoy it - 
  309.  
  310.    And happy gaming!!
  311.  
  312.     Keith
  313.  
  314.  
  315.